package com.mrd.gtimp.business.service;

import com.mrd.gtimp.business.entity.BaseBusiness;

import java.util.List;

/**
 * <p> application name: sample <p> copyright: Copyright@2012 明睿达科技有限公司
 */

/**
 * 定义业务行为类，业务处理类的超类
 *
 * @author winaya
 */

public interface BaseBusinessBiz<T extends BaseBusiness> {

    /**
     * 保存业务
     */
    public abstract void saveBusiness(T baseBusiness, List<String> properties) throws Exception;

    /**
     * 审核业务
     */
    public void updateValidatePass(String id) throws Exception;

    /**
     * 非平台内审核
     *
     * @param validator 业务审核员信息拓展，用于外部审核驳回操作
     */
    public void updateValidatePass(String id, String validator) throws Exception;

    /**
     * 驳回业务
     */
    public void updateValidateReject(String id) throws Exception;

    /**
     * 非平台内驳回业务
     *
     * @param validator 业务审核员信息拓展，用于外部审核驳回操作
     */
    public void updateValidateReject(String id, String validator) throws Exception;

    /**
     * 供应商取消业务
     */
    public void updateValidateCancel(String id) throws Exception;

    /**
     * 客户申请取消业务
     */
    public void updateValidateApplyCancel(String id) throws Exception;

    /**
     * 确认提交业务
     */
    public void updateBizConfirm(String id) throws Exception;

    /**
     * 非平台内上传业务
     *
     * @param validator 业务审核员信息拓展，用于外部审核驳回操作
     */
    public void updateValidateUpload(String id, String validator) throws Exception;

    /**
     * 设置业务为结束状态
     */
    public void updateValidateFinish(String id, String validator) throws Exception;

}
